import request from "../../utils/request"
import westore from "../../utils/westore/westore"

westore.createPage({
  // 内部私有数据
  isUserLoginEventID: "",

  /**
   * 页面的初始数据
   */
  data: {
    userInfo: {},
    isUserLogin: false,
    recentPlayList: {}
  },

  /**
    * 生命周期函数--监听页面显示
    * 注意这里使用的生命周期函数是onReady
    */
  onReady() {
    if (this.data.isUserLogin) {
      this.getUserRecentPlayList(this.data.userInfo.userId)
    }
    this.isUserLoginEventID = westore.addChangeListener("isUserLogin", (isLogin) => {
      console.log("isLogin --->" + isLogin);
      if (isLogin) {
        // 获取用户播放记录
        this.getUserRecentPlayList(this.data.userInfo.userId)
      }
    });
  },

  // 页面卸载时触发
  onUnload() {
    westore.removeChangeListener(this.isUserLoginEventID);
  },

  // 跳转到登录页面
  gotoLogin() {
    wx.navigateTo({
      url: '/pages/login/login'
    });
  },

  // 用户登出
  userLogout() {
    // 清除本地数据
    getApp().clearUserData();

    // 清空westore数据缓存
    this.update({
      userInfo: {},
      isUserLogin: false,
    });

    // 清空本地数据缓存
    this.setData({
      recentPlayList: []
    });

    // 跳转到登录页面
    wx.navigateTo({
      url: '/pages/login/login',
    })
  },

  // 获取用户播放记录
  async getUserRecentPlayList(userId) {
    // 可选参数: type : type=1 时只返回 weekData, type=0 时返回 allData
    let recentPlayListData = await request.post('user/record', {
      uid: userId,
      type: 0
    });

    let recentPlayList = recentPlayListData.allData.splice(0, 15).map((item, index) => {
      item.id = index;
      return item;
    })
    this.setData({
      recentPlayList
    })
  },
})